home *** CD-ROM | disk | FTP | other *** search
/ 3D Games - Real-time Rend…ng & Software Technology / 3D Games - Real-time Rendering & Software Technology.iso / flysdk / util / max / flyfao / flyfao.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-08-08  |  2.4 KB  |  75 lines

  1. #ifndef __FLYFAO__H
  2. #define __FLYFAO__H
  3.  
  4. #define FLYFAO_CLASS_ID    Class_ID(0x375dc9ae, 0x4baacec0)
  5.  
  6. #include "Simpobj.h"
  7.  
  8. class Flyfao : public SimpleObject, public IParamArray {
  9.  
  10.     public:
  11.         HWND hParams;
  12.  
  13.         int nkeys,nverts,nfaces;
  14.         float *verts;
  15.         float *uvs;
  16.         unsigned short *faces;
  17.         
  18.         virtual void add_key(Mesh *mesh,Matrix3 tm,Point3 pos, Matrix3 piv);
  19.         virtual void delete_key(int key);
  20.         virtual void open_file_dialog();
  21.         virtual void open_save_file_dialog();
  22.         virtual int load_fao(char *file);
  23.         virtual int save_fao(char *file,char *skin,Point3 pivot);
  24.  
  25.         //Class vars
  26.         static IObjParam *ip;            //Access to the interface
  27.         static IParamMap *pmapParam;    //handle to the parammap        
  28.         
  29.         // Constructor/Destructor
  30.         Flyfao();
  31.         ~Flyfao();
  32.  
  33.         // From BaseObject
  34.         CreateMouseCallBack* GetCreateMouseCallBack();
  35.         
  36.         // From Object
  37.         BOOL HasUVW();
  38.         void SetGenUVW(BOOL sw);
  39.         int CanConvertToType(Class_ID obtype);
  40.         Object* ConvertToType(TimeValue t, Class_ID obtype);
  41.         void GetCollapseTypes(Tab<Class_ID> &clist,Tab<TSTR*> &nlist);
  42.         int IntersectRay(TimeValue t, Ray& ray, float& at, Point3& norm);
  43.         TCHAR *GetObjectName();
  44.         //TODO: Evaluate the object and return the ObjectState
  45.         ObjectState Eval(TimeValue t) { return ObjectState(this); };        
  46.         //TODO: Return the validity interval of the object as a whole
  47.         Interval ObjectValidity(TimeValue t) { return FOREVER; }
  48.  
  49.         // From Animatable
  50.         void BeginEditParams( IObjParam  *ip, ULONG flags,Animatable *prev);
  51.         void EndEditParams( IObjParam *ip, ULONG flags,Animatable *next);
  52.         void DeleteThis() {delete this;}
  53.         Class_ID ClassID() { return FLYFAO_CLASS_ID; } 
  54.  
  55.         // From ReferenceTarget
  56.         RefTargetHandle Clone(RemapDir& remap = NoRemap());
  57.         IOResult Load(ILoad *iload);
  58.         IOResult Save(ISave *isave);
  59.         // From IParamArray
  60.         BOOL SetValue(int i, TimeValue t, int v);
  61.         BOOL SetValue(int i, TimeValue t, float v);
  62.         BOOL SetValue(int i, TimeValue t, Point3 &v);
  63.         BOOL GetValue(int i, TimeValue t, int &v, Interval &ivalid);
  64.         BOOL GetValue(int i, TimeValue t, float &v, Interval &ivalid);
  65.         BOOL GetValue(int i, TimeValue t, Point3 &v, Interval &ivalid);
  66.         // From SimpleObject
  67.         void BuildMesh(TimeValue t);
  68.         BOOL OKtoDisplay(TimeValue t);
  69.         void InvalidateUI();
  70.         ParamDimension *GetParameterDim(int pbIndex);
  71.         TSTR GetParameterName(int pbIndex);
  72. };
  73.  
  74. #endif // __FLYFAO__H
  75.